Créer une commande

Les commandes sont déclenchées en les écrivant dans le chat et vous permettent d’y affecter l’action que vous souhaitez.

Pour créer une commande, vous devez passer par un de ses constructeurs.

Le constructeur simple

Pour enregistrer une commande sans allias, nous allons utiliser ce constructeur.

Nous pouvons voir qu’il nous faut renseigner quatre informations :

  • Le déclencheur de la commande
  • La description de la commande
  • La description de l’utilisation de la commande
  • L’action déclenchée par la commande

Nous allons pour cet exemple créer une commande dont voici les caractéristiques :

Paramètre Correspondance
Déclencheur /test
Description Une commande de test
Utilisation /test
Action Affiche dans la console le nom du joueur

Voici à quoi la construction ressemble pour cette commande :

SChatCommand testCommand = new SChatCommand("/test", "Une commande de test", "/test", (Action<Player, string[]>)((player, args) =>
{
    Debug.Log($"Commande de test déclenchée par {player.FullName}");
}));

Maintenant que nous avons créée notre commande, il ne nous reste plus qu’à l’enregistrer avec la méthode Register() afin qu’elle soit chargée au démarrage du serveur et puisse être utilisée par les joueurs :

testCommand.Register();

Le constructeur avec allias

Le constructeur avec allias permet d’affecter des allias au déclencheur de la commande. Dans cet exemple, nous allons utiliser la même commande /test que pour le constructeur simple et allons rajouter les allias /t et /cmdtest. La commande pourra donc être appelée en tapant dans le chat /t, /test ou bien /cmdtest.

Pour ce faire, nous utilisons ce constructeur :

SChatCommand testCommand = new SChatCommand("/test", new string[] { "/t", "/cmdtest" }, "Une commande de test", "/test", (Action<Player, string[]>)((player, args) =>
{
    Debug.Log($"Commande de test déclenchée par {player.FullName}");
}));

Il ne nous reste plus qu’à enregistrer la commande avec la méthode Register() de la même manière que pour le constructeur simple :

testCommand.Register();